iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI Engineering

生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則系列 第 4

第 4 律:一張成功截圖,能證明 AI 會做多少事?

  • 分享至 

  • xImage
  •  

昨天那篇最後,我說紀錄表多了一欄:「由什麼產生」。

今天想再加一欄。

而且這一欄很麻煩,因為你只看最後成品,幾乎不可能看得出來。

第幾次。

我們常常會看到有人貼一張截圖,說某個模型成功做出了什麼。你照著做,結果做不出來。

原因當然很多。可能版本不同、提示詞不同、環境不同,也可能工具本身就不是同一套。

但今天我只想談一個很容易被忽略的問題:

那張成功的截圖,到底是第幾次跑出來的?

定律

我目前把它寫成這樣:

測試結果只能直接支持已測條件;要把結果推到其他題目、其他執行,甚至其他環境,就必須另外交代假設。

這句話有一個前提:你是從有限幾次觀察,往更大的範圍推。

如果本來就有完整的形式保證,那當然是另一回事。

它也不是在說「模型一定會飄」。

如果一個系統在固定條件下本來就是確定性的,那同一題重跑二十次,二十次完全一樣,一點也不奇怪。這時候真正該變的,可能不是執行次數,而是題目或環境。

所以沒有變異,不代表這條律錯了;但反過來,也不能因為同一題跑很多次都一樣,就說這個系統在所有事情上都可靠。

還有一個更基本的限制:沒有真的跑過的實驗,就不能寫得像已經有結果。幾個模型、幾個題目的小樣本,也不能直接說成普遍現象。

第一版其實失敗了

今晚一開始,我不是做現在這個實驗。

我先挑了三題統計計算,兩個介面各跑五次,所以總共三十次。

結果二十九次答對。

當時看起來有一次錯了。

但我往下追才發現,那次其實不是模型錯,是我自己的題目有問題。

題幹寫的是:兩位評分者評了 60 個案例。

可是我附的矩陣裡,九個數字加起來只有 58。

模型選擇相信題目文字裡寫的 60。

換句話說,它其實沒有算錯。

所以那三十次做到最後,我才發現:什麼也沒量到。

有趣的是,反而是這個失敗把問題弄清楚了。

後來我又找了六個候選題來試。

有分母為零的樣本標準差、有埋反向計分的信度係數、有七條規格的字串函式,而且我還刻意把同一組規格分成條列版跟散文版;另外還有組合機率,以及從一段文字裡把所有年份找出來。

這些加起來,又跑了三十次。

結果全部答對。

一次都沒飄。

我後來才注意到,這些題目其實都有同一個特徵:

我要的不是一段「表現」,而是一段程式,或一個唯一答案的數字。

只要模型願意寫程式,很多難題其實可以直接暴力算。

難度被交給程式了。

而程式跑出來之後,至少不會因為「今天剛好手滑」就少算一個。

算式也是一樣。

所以我那時候開始覺得,也許我要找的變異根本不在「算不算得出來」。

那就換一題,讓它沒有東西可以替自己把關

最後我換成一個很人工的題目。

而且我直接規定:不能寫程式。

要求是寫三句中文,說明「為什麼一次成功不能證明一個方法可靠」。

同時要符合六個條件:

  1. 恰好三個句子
  2. 不含標點的漢字共 60 到 80 個
  3. 必須出現「觀測」
  4. 不可出現「我」
  5. 不可出現任何數字,連中文數字一到十也不行
  6. 第三句必須用問號結尾

這題跟前面的差別很大。

它沒有唯一答案。

也沒有一個直譯器可以幫模型檢查。

六個條件只能靠它一邊寫,一邊自己記著。

我的判準則另外寫成程式。

六條全部符合才算通過,只要掉一條就是失敗。不看文筆好不好,也沒有部分分數。

提示詞、判準跟判分器,我都在第一次正式呼叫之前就提交到版本控制裡。正式開始之後沒有再改。

我也先寫好否證條件:如果二十次全部通過,或者二十次全部失敗,那我就不寫「有變異」,而是改寫成「這次沒有測到」。

模型是 Claude Haiku 4.5。

二十次獨立呼叫。

每一次提示詞完全相同。

結果是九次通過,十一次失敗

有幾條其實很穩。

句數二十次全部正確。

第三句用問號結尾,二十次也全部正確。

「不能出現我」同樣二十次全中。

真正出問題的只有三條:

掉在哪一條 次數
漢字超過 60 到 80 個 8
出現中文數字「一」 6
把「觀測」寫成簡體「观测」 2

因為有些回答一次犯兩條,所以加起來會超過十一。

字數那八次有一個很一致的方向:

全部都是太長。

沒有任何一次低於 60。

最長寫到 96 個字。

二十次整體的字數範圍是 64 到 96。

「一」也很有意思。

六次大多數都不是亂跑出來的,而是出現在同一個詞:

「一次成功」。

偏偏我叫它回答的問題,就是「為什麼一次成功不能證明可靠」。

也就是說,題目本身把一個非常自然的表達放到了它面前,但規則又禁止它使用那個字。

這種錯不像「不會」,比較像它在生成過程裡沒有一直把所有條件都抓在手上。

同一份資料,可以講出三個完全不同的故事

假設現在有人問:

「這個模型到底會不會做這件事?」

我手上有這二十次。

如果只看第一次,你會得到:

你怎麼看 你會說
只看第一次 不會,我試過了
只看最好的一次 會,你看,它做得到
二十次全部看 二十次裡有九次通過

這三句其實都沒有造假。

問題是,它們呈現的是完全不同的東西。

而且很剛好,第一次就是失敗的。

那次有 89 個字,而且用了「一」。

所以如果我當時只跑一次就停,今天這篇文章的方向可能會完全相反。

更麻煩的是,選題階段那六次其實很好看

正式跑二十次以前,我為了確認這題值得用,先試了六次。

那六次裡面,有五次通過。

然後正式二十次,只有九次通過。

同一個模型。

同一個提示詞。

同一個晚上。

前一批是六分之五,後一批是二十分之九。

我不覺得這件事本身有什麼神祕。

六次本來就是很小的樣本,晃很大完全正常。

但也正因為如此,它剛好變成一個很好的例子。

如果我當時覺得「喔,五次都可以耶」,然後直接拿那六次當結果,整篇文章裡看到的成功比例,會漂亮非常多。

差不多快一倍。

這次有三件事不能往外推

第一,這題是我挑出來的。

這很重要。

前面那些題目就是因為太穩,我才沒有拿來做正式實驗。

所以現在的結果只能說:我找到了一種會出現執行變異的題目。

它不能直接推出「這個模型普遍都很不穩」。

第二,我不知道實際取樣溫度。

這二十次是透過命令列工具的代理呼叫跑的,我看不到,也不能設定後面的 sampling temperature。

聊天視窗是不是同樣設定,我不知道。

所以這裡的九比十一,不能直接搬去當成你在聊天介面裡的成功率。

第三,這六個條件本來就不等難。

句數很穩。

問號也很穩。

字數和「不能出現一」明顯難很多。

所以最後那個二十分之九,不是一個什麼抽象的「模型可靠率」。

它只是這個模型,在這一題、這六條規則、這個執行環境裡的結果。

條件一換,比例就會跟著換。

那這條律要怎麼被推翻?

如果要讓它可以被否定,我目前會這樣寫。

找一組有明確對錯的題目,每一題都重複執行。

如果每一題最後不是永遠全對,就是永遠全錯,而且:

「只看第一次」

「只看最好的一次」

「看全部執行」

三種看法最後得到的資訊都一樣,那麼至少對這組題目而言,重複執行就沒有增加資訊。

今晚前面的那批計算題,其實就很接近這個情況。

後面這二十次不是。

我覺得這兩個結果放在一起,反而比只留下會飄的那組更重要。

因為差別不一定在模型。

也可能在題目。

所以下次看到一張成功截圖時,我想多問一句

不是「你的 prompt 是什麼?」

也不一定先問「你用哪個版本?」

我現在會先想問:

這是第幾次跑的?

還有:

你總共跑了幾次?

其實只差這兩個數字。

但如果沒有它們,一張「第一次就成功」的截圖,和一張「跑了二十次挑最好的一次」的截圖,在畫面上完全沒有差別。

這就是為什麼,我的紀錄表今天又多了一欄:

第幾次。

耗時看得見。

最後結果看得見。

模型名稱通常也看得到。

但第幾次,往往只有執行的人知道。

而且一旦沒有記下來,事後幾乎不可能從成品裡推回去。

本文的協作紀錄是:提示詞、判準與判分器都在第一次正式呼叫之前提交,之後沒有修改;二十次原始輸出逐字保留,判定由程式執行,作者沒有逐條人工核對。今晚最早那三十次,以及後來被淘汰的六個候選題,也都留在實驗目錄裡,沒有刪掉。

文章由 Claude 根據作者整理的寫作規則起草。

這篇沒有做 Day 2 那種六個審查者的檢查。

下一篇想談另一個問題:

字數對了、格式也對了,為什麼文章還是沒有幫上忙。


上一篇
第 3 律:會看圖、會描述圖,和會生圖是三件事
下一篇
第 5 律:字數、格式都對了,為什麼文章還是沒有幫上忙?
系列文
生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言